<?php
App::uses('AppController', 'Controller');
/**
 * Operadoras Controller
 *
 * @property Operadora $Operadora
 */
class OperadorasController extends AppController {
	
	//public $components = array('ImageUploader');
	public  $components = array('RequestHandler');
	
/**
 * picture method
 *
 * @return void
 */
	function picture(){
	  
		App::uses('Sanitize', 'Utility');
		$output= array();  
		$data=Sanitize::clean($this->request->data);
		
		$file = $data['file']['image'];
		
		//the folder where the files will be stored
		$fileDestination = 'files';
		
		//the folder where the thumbnails will be saved (files/thumbnails/)
		$thumbnailDestination = $fileDestination.'/thumbnails/';
	
		/*
	   	* 
	   	* this is an array of options that can be passed to the 
	   	* ImageUploader function upload($formData, $path=null,$options=array('custom_name'=>null, 'thumbnail'=>null, 'max_width'=>null))
	   	* 
	   	* 
	   	* where $formData is the uploaded file, $path is the path where the file will be saved,
	   	* and options are available when uploading the image 
	   	* $options('thumbnail'=>array("max_width"=>'width_for_thumbnail',"max_height"=>'height_for_thumbnail', "path"=>'file/path/for/thumbnail/', "custom_name"=>'custom_name_for_the_thumbnail')
	   	*          'max_width'=>
	   	*          'custom_name'=>)
	   	* Where thumbnail is to create a thumbnail of the image when uploaded, 
	   	* max_width is to rescale the picture with a specific width,
	   	* custom_name is a custom name for the uploaded image
	   	* 
	   	* If you don't want to use options and simply upload the image just call the upload function without the options' array
	   	* 
	   	*/   
	  	$options = array('thumbnail'=>array("max_width"=>180, "max_height"=>100, "path"=>$thumbnailDestination), 'max_width'=>700);
	  	    
	    try{
	    	
	    	//this is where the magic happens we call the function upload using the imageuploader component
	    	$output = $this->ImageUploader->upload($file,$fileDestination,$options);
	    	
		} catch(Exception $e) {
			$output = array('bool'=>FALSE,'error_message'=>$e->getMessage());
		
		}
	}
	
	
/**
 * index method
 *
 * @return void
 */
	public function index() {
		
		$filtro = array();
		$defaultsearchtext = '';
		
		if(!empty($this->request->data['Operadora']['nome'])){
			$titulo = $this->request->data['Operadora']['nome'];
			$defaultsearchtext = $titulo;
			$titulo = strtolower($titulo);
			$titulo = preg_replace("/&([a-z])[a-z]+;/i", "$1", htmlentities($titulo));
		
			$filtro = array('OR' => array(array("LOWER(sem_acento(Operadora.nome)) LIKE " => "%".$titulo."%"), array("LOWER(sem_acento(Operadora.abreviacao)) LIKE " => "%".$titulo."%")));
		}
		
		$this->paginate = array('limit' => 10, 'conditions'=> $filtro);
		$this->Operadora->recursive = 0;
		$this->Operadora->order = 'Operadora.nome ASC';
		$operadoras = $this->paginate();
		
		$this->set(compact('operadoras', 'defaultsearchtext'));
	}

/**
 * view method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function view($id = null) {
		$this->Operadora->id = $id;
		if (!$this->Operadora->exists()) {
			throw new NotFoundException(__('Operação inválida!'));
		}
		$this->set('operadora', $this->Operadora->read(null, $id));
	}

/**
 * showdata method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */	
	
	public function showdata() {
		
		//$this->autoRender=false;
		$this->RequestHandler->isAjax();
		
		$id = $_POST["nk"];
		
		if($id != null) {
			
			$operadora = $this->Operadora->find('all',  array('conditions' => array('Operadora.id' => $id)));
			
			//$img = $this->Imagem->find('all', array('conditions' => array('Imagem.id' => $id)));
			$this->loadModel('Entidade');
			$entidade = $this->Entidade->find('all',  array('conditions' => array('Entidade.id' => $operadora[0]['Operadora']['entidade_id'])));
			
			$this->loadModel('Operadoradetalhe');
			$detalhes = $this->Operadoradetalhe->find('all',  array('conditions' => array('Operadoradetalhe.operadora_id' => $operadora[0]['Operadora']['id'])));
			
			//pr($detalhes);
			$this->header('Content-Type: application/json');
			
			echo json_encode(array('status' => true, 'entidade' => $entidade, 'detalhes' => $detalhes, 'operadora' => $operadora));
		}
		
		exit();
	}

/**
 * add method
 *
 * @return void
 */
	public function add() {
		if ($this->request->is('post')) {
			$this->Operadora->create();
			
			$image = $this->Operadora->Imagem->read(null, $this->request->data['Operadora']['imagem_id']);
			$logomarca = $this->Operadora->Imagem->read(null, $this->request->data['Operadora']['logomarca_id']);
			
			$this->request->data['Operadora']['imgpath'] = $image['Imagem']['imgpath'];
			$this->request->data['Operadora']['logopath'] = $logomarca['Imagem']['imgpath'];
			pr($this->request->data);
			if($this->request->data['Operadora']['mostrarodont'] == false) {
				$this->request->data['Operadora']['operadoraodont_id'] = '';
			}
			
			if ($this->Operadora->save($this->request->data)) {
				$this->Session->setFlash(__('A Operadora foi salva com sucesso!'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('A Operadora não foi salva. Por favor tente novamente!'));
			}
		}
		$imagems = $this->Operadora->Imagem->find('list', array('order' =>'Imagem.titulo ASC'));
		$logomarcas = $this->Operadora->Logomarca->find('list', array('order' =>'Logomarca.titulo ASC'));
		//$operadoraodont = $this->Operadora->Operadoramain->find('list');
		$operadoraodont = $this->Operadora->find('list', array('conditions' => array('Operadora.tipoplano' => '1'), 'order' =>'Operadora.nome ASC'));
		$operadoraseguro = $this->Operadora->Segurovida->find('list', array('conditions' => array('Segurovida.tiposeguradora' => '1'), 'order' =>'Segurovida.titulo ASC'));
		//$operadoraodont = $this->Operadora->generatetreelist(null, null, null, '-');
		$entidades = $this->Operadora->Entidade->find('list', array('order' =>'Entidade.nome ASC'));
		$corretors = $this->Operadora->Corretor->find('list');
		$estadocivils = $this->Operadora->Estadocivil->find('list');
		$this->set(compact('imagems', 'logomarcas', 'entidades', 'corretors', 'estadocivils', 'operadoraodont', 'operadoraseguro'));
	}

/**
 * edit method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function edit($id = null) {
		$this->Operadora->id = $id;
		if (!$this->Operadora->exists()) {
			throw new NotFoundException(__('Operação inválida!'));
		}
		if ($this->request->is('post') || $this->request->is('put')) {
			
			$image = $this->Operadora->Imagem->read(null, $this->request->data['Operadora']['imagem_id']);
			$logomarca = $this->Operadora->Imagem->read(null, $this->request->data['Operadora']['logomarca_id']);
				
			$this->request->data['Operadora']['imgpath'] = $image['Imagem']['imgpath'];
			$this->request->data['Operadora']['logopath'] = $logomarca['Imagem']['imgpath'];
			//pr($this->request->data);
			if($this->request->data['Operadora']['mostrarodont'] == false) {
				$this->request->data['Operadora']['operadoraodont_id'] = '';
			}
			
			if($this->request->data['Operadora']['mostrarseguro'] == false) {
				$this->request->data['Operadora']['segurovida_id'] = '';
			}
			
			if ($this->Operadora->save($this->request->data)) {
				$this->Session->setFlash(__('A Operadora foi salva com sucesso!'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('A Operadora não foi salva. Por favor tente novamente!'));
			}
		} else {
			$this->request->data = $this->Operadora->read(null, $id);
		}
		$imagems = $this->Operadora->Imagem->find('list', array('order' =>'Imagem.titulo ASC'));
		$logomarcas = $this->Operadora->Logomarca->find('list', array('order' =>'Logomarca.titulo ASC'));
		//$operadoraodont = $this->Operadora->Operadoramain->find('list');
		$operadoraodont = $this->Operadora->find('list', array('conditions' => array('Operadora.tipoplano' => '1'), 'order' =>'Operadora.nome ASC'));
		$operadoraseguro = $this->Operadora->Segurovida->find('list', array('conditions' => array('Segurovida.tiposeguradora' => '1'), 'order' =>'Segurovida.titulo ASC'));
		//$operadoraodont = $this->Operadora->generatetreelist(null, null, null, '-');
		$entidades = $this->Operadora->Entidade->find('list', array('order' =>'Entidade.nome ASC'));
		$corretors = $this->Operadora->Corretor->find('list');
		$estadocivils = $this->Operadora->Estadocivil->find('list');
		$this->set(compact('imagems', 'logomarcas', 'entidades', 'corretors', 'estadocivils', 'operadoraodont', 'operadoraseguro'));
	}

/**
 * delete method
 *
 * @throws MethodNotAllowedException
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function delete($id = null) {
		if (!$this->request->is('post')) {
			throw new MethodNotAllowedException();
		}
		$this->Operadora->id = $id;
		if (!$this->Operadora->exists()) {
			throw new NotFoundException(__('Operação inválida!'));
		}
		if ($this->Operadora->delete()) {
			$this->Session->setFlash(__('Operadora excluída com sucesso!'));
			$this->redirect(array('action' => 'index'));
		}
		$this->Session->setFlash(__('A Operadora não foi excluída. Por favor tente novamente!'));
		$this->redirect(array('action' => 'index'));
	}
}
